The business process management is an important activity, especially for big organizations, including enterprises, government administrations, non-profit organizations, etc. The development, implementation and control of simpler and more cost efficient business processes is a major success factor for any organization. The introduction of more advanced software and hardware solutions continuously expands the possibilities for improvements in the business processes adopted by an organization. In software engineering, various stakeholders, e.g., managers, business analysts, process designers, software developers, etc., are involved in business process modeling and business process automation. Some of their main goals are to create, implement and support business process models with improved quality and efficiency within an organization.
Different vendors provide various software tools to facilitate the work of the stakeholders in business process modeling. There is a mutual interest among the parties involved in process modeling to use common and concise description of the business processes which are lucid, inside and outside an organization. There are a number of workflow pattern definitions developed by different vendors or organizations to set semantics for business process modeling. Business process modeling notation (BPMN) maintained by Object Management Group organization is broadly recognized as a standard workflow pattern for business process modeling. The standardized and comprehensive descriptions of business process models increase the efficiency of the business processes lifecycle across the different stakeholders. Furthermore, the business process models compliant with a standard workflow pattern may be easily, and even automatically, translated to executable instructions in a runtime computer system environment. For example, a standard business process description that is, for e.g., BPMN compliant, could be compiled to a set of trigger network instructions, executable by a rule based engine of a runtime computer system environment.
Business processes of an organization frequently include execution of repetitive tasks. Often, it is desirable for such tasks to be performed in parallel for reasons such as good throughput, small overall process turnaround times, and improved resource utilization. For example, a business process-flow execution may involve processing of data batches in a computer system running a number of concurrent processors. Thus, a number of repetitive task recurrences could be routed to different processors at the same time. However, the number of repetitive task recurrences, and hence the number of parallel execution threads, can be determined only during runtime, based on the process-flow data context. For example, the precise number of tasks to be executed may correspond to the cardinality of a dynamically evaluated list-valued expression. Therefore, it is hard to automatically translate a multi-instance activity of a business process model to a series of instructions executed in parallel.